package Framework.Fabricas;
import Framework.Entidades.Cargo.AgenteCargo;
import Framework.Entidades.Cargo.ImplementacionCargo;
import Framework.Entidades.Carrera.AgenteCarrera;
import Framework.Entidades.Carrera.ImplementacionCarrera;
import Framework.Entidades.Estudiante.AgenteEstudiante;
import Framework.Entidades.Estudiante.ImplementacionEstudiante;
import Framework.Entidades.PlanEstudio.AgentePlanEstudio;
import Framework.Entidades.PlanEstudio.ImplementacionPlanEstudio;
import Framework.Entidades.Postulacion.AgentePostulacion;
import Framework.Entidades.Postulacion.ImplementacionPostulacion;
import Framework.Entidades.Universidad.AgenteUniversidad;
import Framework.Entidades.Universidad.ImplementacionUniversidad;
import Framework.Utilidades.Agente;

public class FabricaEntidad {
    
    private static FabricaEntidad instancia;
    
    public static synchronized FabricaEntidad getInstancia() {
        if (instancia == null) {
            FabricaEntidad instancia = new FabricaEntidad();
            return instancia;
        }
        else {
            return instancia;
        }
    } 

    public Object getEntidad(String clase){
        Agente entidad = null;        
        if ("Estudiante".equals(clase)){ 
        	AgenteEstudiante ae;
            ae = new AgenteEstudiante();
            ae.setOID("123");
            ae.setEsNuevo(true);
            ae.setImplementacionEstudiante(new ImplementacionEstudiante());
           entidad=ae;
        }        
        
        if ("Postulacion".equals(clase)){ 
        	AgentePostulacion ap;
            ap = new AgentePostulacion();
            ap.setOID("2222");
            ap.setEsNuevo(true);
            ap.setImplementacionPostulacion(new ImplementacionPostulacion());
           entidad=ap;
        }        
        if ("Carrera".equals(clase)){ 
        	AgenteCarrera agCarrera;
        	agCarrera = new AgenteCarrera();
        	agCarrera.setOID("333");
        	agCarrera.setEsNuevo(true);
        	agCarrera.setImplementacionCarrera(new ImplementacionCarrera());
           entidad=agCarrera;
        }  
        if ("Cargo".equals(clase)){ 
        	AgenteCargo agCargo;
        	agCargo = new AgenteCargo();
        	agCargo.setOID("333");
        	agCargo.setEsNuevo(true);
        	agCargo.setImplementacionCargo(new ImplementacionCargo());
           entidad=agCargo;
        }  
        if ("Universidad".equals(clase)){ 
        	AgenteUniversidad agUniversidad;
        	agUniversidad = new AgenteUniversidad();
        	agUniversidad.setOID("444");
        	agUniversidad.setEsNuevo(true);
        	agUniversidad.setImplementacionUniversidad(new ImplementacionUniversidad());
           entidad=agUniversidad;
        }  
        
        if ("PlanEstudio".equals(clase)){ 
        	AgentePlanEstudio agPlanEstudio;
        	agPlanEstudio = new AgentePlanEstudio();
        	agPlanEstudio.setOID("444");
        	agPlanEstudio.setEsNuevo(true);
        	agPlanEstudio.setImplementacionPlanEstudio(new ImplementacionPlanEstudio());
           entidad=agPlanEstudio;
        }  
        
        
        
        
        
        
        return entidad;
    }
}